package com.examples.slider;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Slider;
import org.eclipse.swt.widgets.Text;

public class SliderEnhanced {

  public static void main(String[] args) {
    Display display = Display.getDefault();
    Shell shell = new Shell(display);
    shell.setText("Sliders");
    shell.setSize(300, 200);

    final Label label = new Label(shell, SWT.NONE);
    label.setText("Move the slider");
    label.setBounds(0, 20, 150, 15);

    final Slider slider = new Slider(shell, SWT.HORIZONTAL);
    slider.setBounds(0, 40, 200, 20);

    final Text text = new Text(shell, SWT.BORDER);
    text.setBounds(0, 100, 200, 25);

    slider.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event event) {
        String outString = "Event: SWT.NONE";
        switch (event.detail) {
        case SWT.ARROW_DOWN:
          outString = "Event: SWT.ARROW_DOWN";
          break;
        case SWT.ARROW_UP:
          outString = "Event: SWT.ARROW_UP";
          break;
        case SWT.DRAG:
          outString = "Event: SWT.DRAG";
          break;
        case SWT.END:
          outString = "Event: SWT.END";
          break;
        case SWT.HOME:
          outString = "Event: SWT.HOME";
          break;
        case SWT.PAGE_DOWN:
          outString = "Event: SWT.PAGE_DOWN";
          break;
        case SWT.PAGE_UP:
          outString = "Event: SWT.PAGE_UP";
          break;
        }
        outString += " Position: " + slider.getSelection();
        text.setText(outString);
      }
    });

    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
  }
}
